# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default GMod - apAdventure Template

game: GMod - apAdventure
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.

GMod - apAdventure:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  mcguffin_count:
    # Currently, the main goal of apAdventure is to collect all McGuffin items.
    # This setting controls how many of these items will exist in the item pool.
    # 
    # If this is set to a higher number than the amount of free space in
    # the item pool the generator will only place as many as it can fit.
    5

  skill:
    # Sets the internal "skill" variable, which is mainly used for difficulty settings
    # in the Half-Life games.
    # 
    # In Half-Life: Source, enemies will gain more health and deal more damage at higher skill settings.
    # 
    # In Half-Life 2, enemies will deal more damage at higher difficulties and ammo gain from pickups is reduced.
    # 
    # Players will also deal less damage against enemies from both games at higher difficulties.
    # (This may not be intended behavior for HL1 enemies, but this is how GMod handles it.)
    # 
    # Outside of Half-Life, lua coders and map makers are also able to check what this value is set to
    # and have their code/maps behave differently depending on it, but this is not very common.
    easy: 0
    normal: 50
    hard: 0

  bhop:
    # GMods Sandbox gamemode (which this gamemode derives from internally) normally clamps
    # the players movement speed when they jump off the ground to prevent Bunnyhopping.
    # 
    # Choosing "never" maintains this behavior, "item" removes it after
    # receiving an item and "always" will disable it from the start.
    # 
    # The latter two options also provide an autohop.
    never: 50
    item: 0
    always: 0

  bhop_logic:
    # Determines how hard Bunnyhops are allowed to be before they are considered out of logic.
    # 
    # This difficulty rating is oriented around Momentum Mods tier system, with 1 being the easiest
    # and 10 being the hardest. Although unlike Momentum Mod, apAdventure allows fractional values for
    # more granularity.
    # 
    # Setting this to 0, lower or any other value that can not be converted into a number
    # puts all BHops out of logic. Ignored if bhop is set to "never
    0

  surf_logic:
    # Determines how hard Surfs are allowed to be before they are considered out of logic.
    # 
    # This difficulty rating is oriented around Momentum Mods tier system, with 1 being the easiest
    # and 10 being the hardest. Although unlike Momentum Mod, apAdventure allows fractional values for
    # more granularity.
    # 
    # Setting this to 0, lower or any other value that can not be converted into a number
    # puts all Surfs out of logic.
    0

  config_groups:
    # Config Groups to use for generation.
    # 
    # Map Configs are used by apAdventure to tell the generator what the maps the player wants to play on contain
    # and where the gamemode should place exits, locations and whatever else the config creator wants to include
    # in their Config.
    # 
    # Configs are organized into groups so maps related to each other (such as maps from the same chapter in HL2)
    # can be grouped together and share certain settings.
    # 
    # Not all configs are enabled by default. If you want to see what configs are available, you can use the
    # "apAdventure - Generate Map Index" tool in your launcher to get a list of all available config groups
    # and the maps in them.
    ['nova_prospekt', 'lost_coast', 'canals_walk', 'ravenholm', 'orange_hub', 'coast_walk']

  config_cherrypick:
    # This option allows you to cherrypick single maps from a Config Group.
    # 
    # Check the options guide for more information on how this option works.
    {}

  config_blacklist:
    # This option allows you to pick maps from a Config Group that should not be added to your run.
    # 
    # The defaults for this setting contain some maps that don't play very well in this mode, but still
    # had configs made for them for the sake of covering all maps.
    # 
    # Blacklisting maps that have not actually been added through the previous options
    # should not cause problems.
    # 
    # Check the options guide for more information on how this option works.
    hls_unforeseen_consequences:
    - c1a1g
    nova_prospekt:
    - d2_prison_06
    ravenholm:
    - d1_town_02a
    - d1_town_04

  start_group:
    # What group your starting map should be picked from. Normally, your starting map is picked at random
    # from all maps that have starting points set, but this option lets you set a filter for a certain group.
    # 
    # An empty string (the default setting) disables the filter.
    # 
    # This option mainly exists for cases where the same map exists in multiple groups,
    # you probably won't have to set this.
    '': 50

  start_map:
    # The name of your starting map. Functions similarly to the start_group setting,
    # but filters after the map name instead.
    # 
    # Looks for the file name of the map. (ap_orange, gm_construct, etc., without extensions)
    # 
    # Currently, apAdventure only includes a single starting map, so you won't have to set
    # this option unless you have made your own configs with starting points.
    '': 50

  start_region:
    # If your selected starting map has start points placed in multiple regions,
    # you can use this setting to chose what region you want to start in.
    # 
    # The starting map included with apAdventure does not have multiple starting regions,
    # so you can ignore this option unless you have made your own configs with
    # multiple starting regions.
    '': 50

  item_sets:
    # Item Sets to use for generation.
    # 
    # Similarly to Map Configs, Items related to each other are grouped together in Item Sets.
    # 
    # Not all Item Sets are enabled by default. If you want to see what sets are available, you can use the
    # "apAdventure - Generate Item Index" tool in your launcher to get a list of all available item sets
    # and the items in them.
    # 
    # The Generator will automatically check which of the items chosen are relevant to progression
    # and remove items that are not logically required if there is not enough space for them.
    # This process is not perfect though, the generator just checks if the item can fullfill
    # any logic rule, but it doesn't check if there is another item that could also satisfy
    # that rule, so if multiple items exist that can pass the same conditions the generator will
    # keep all of then, even if the run could be beaten with only one of them.
    ['hl2weps', 'generic_filler', 'funny']

  item_cherrypick:
    # This option allows you to cherrypick single items from an Item Set.
    # 
    # Check the options guide for more information on how this option works.
    {}

  item_blacklist:
    # This option allows you to blacklist single items from an Item Set.
    # 
    # Check the options guide for more information on how this option works.
    {}

  start_item_groups:
    # What types of starting items you want.
    # 
    # Items may be marked as being part of a certain start item group.
    # You can enter the name of one of these groups here to be granted one item of each type.
    # You will also always be granted a starting melee weapon.
    # 
    # Currently, the available item types are "Pistol","Shotgun","Magnum","SMG" and "Grenade".
    # Custom item sets may also add their own types.
    ['Pistol']

  ammo_merge:
    # This option allows ammo types to be merged together.
    # 
    # Whenever the player gains or loses ammo for a merged type,
    # all merged types will also be set to the same amount, and
    # whenever ammunition of a merged type is available logically,
    # the generator will also consider all merged types to be available.
    # 
    # This feature mainly exists for Half-Life: Source, which uses
    # separate ammo types from HL2. Note that not all HL2 ammo types
    # have a HL:S counterpart.
    # 
    # A list of all of GMods default ammo types can be found here:
    # https://wiki.facepunch.com/gmod/Default_Ammo_Types
    # 
    # Alternatively, apAdventure also provides a console command
    # called "apadventure_dump_ammotypes" that will dump the names
    # of all currently existing ammo types, which can be used to figure
    # out the names of ammo types that have been added by addons.
    [['Pistol', '9mmRound'], ['Buckshot', 'BuckshotHL1'], ['357', '357Round'], ['Grenade', 'GrenadeHL1'], ['SMG1_Grenade', 'MP5_Grenade'], ['RPG_Round', 'RPG_Rocket']]

  generate_puml:
    # Generates a PlantUML Diagram showing all of the worlds regions and locations,
    # which may be helpful for debugging configs you've made.
    'false': 50
    'true': 0

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_inventory_from_pool:
    # Start with the specified amount of these items and don't place them in the world. Example: "Bomb: 1"
    # 
    # The game decides what the replacement items will be.
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
